{% extends "form_div_layout.html.twig" %}
{# Widgets #}
{% block form_widget_simple -%}
  {% if type is not defined or 'file' != type %}
    {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control')|trim}) %}
  {% endif %}
  {{- parent() -}}
{%- endblock form_widget_simple %}
{% block textarea_widget -%}
  {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control')|trim}) %}
  {{- parent() -}}
{%- endblock textarea_widget %}
{% block button_widget -%}
  {% set attr = attr|merge({class: (attr.class|default('') ~ ' btn')|trim}) %}
  {{- parent() -}}
{%- endblock %}
{% block money_widget -%}
  <div class="input-group">
    {% set prepend = '{{' == money_pattern[0:2] %}
    {% if not prepend %}
      <span class="input-group-addon">{{ money_pattern|replace({ '{{ widget }}':''}) }}</span>
    {% endif %}
    {{- block('form_widget_simple') -}}
    {% if prepend %}
      <span class="input-group-addon">{{ money_pattern|replace({ '{{ widget }}':''}) }}</span>
    {% endif %}
  </div>
{%- endblock money_widget %}
{% block percent_widget -%}
  <div class="input-group">
    {{- block('form_widget_simple') -}}
    <span class="input-group-addon">%</span>
  </div>
{%- endblock percent_widget %}
{% block datetime_widget -%}
  {% if widget == 'single_text' %}
    {{- block('form_widget_simple') -}}
  {% else %}
    {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-inline')|trim}) %}
    <div {{ block('widget_container_attributes') }}>
      {{ form_errors(form.date) }}
      {{ form_errors(form.time) }}
      {{ form_widget(form.date, { datetime: true }) }}&nbsp;
      {{ form_widget(form.time, { datetime: true }) }}
    </div>
  {% endif %}
{%- endblock datetime_widget %}
{% block date_widget -%}
  {% if widget == 'single_text' %}
    {{- block('form_widget_simple') -}}
  {% else %}
    {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-inline')|trim}) %}
    {% if datetime is not defined or not datetime %}
      <div {{ block('widget_container_attributes') -}}>
    {% endif %}
    {{ date_pattern|replace({
      '{{ year }}': form_widget(form.year),
      '{{ month }}': form_widget(form.month),
      '{{ day }}': form_widget(form.day),
    })|raw }}
    {% if datetime is not defined or not datetime %}
      </div>
    {% endif %}
  {% endif %}
{%- endblock date_widget %}
{% block time_widget -%}
  {% if widget == 'single_text' %}
    {{- block('form_widget_simple') -}}
  {% else %}
    {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-inline')|trim}) %}
    {% if datetime is not defined or false == datetime %}
      <div {{ block('widget_container_attributes') -}}>
    {% endif %}
    {{ form_widget(form.hour) }}
    :{{ form_widget(form.minute) }}{% if with_seconds %}:{{ form_widget(form.second) }}{% endif %}
    {% if datetime is not defined or false == datetime %}
      </div>
    {% endif %}
  {% endif %}
{%- endblock time_widget %}
{% block choice_widget_collapsed -%}
  {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control')|trim}) %}
  {{- parent() -}}
{%- endblock %}
{% block choice_widget_expanded -%}
  {% if '-inline' in label_attr.class|default('') %}
    <div class="control-group">
      {% for child in form %}
        {{ form_widget(child, {
          parent_label_class: label_attr.class|default(''),
        }) }}
      {% endfor %}
    </div>
  {% else %}
    <div {{ block('widget_container_attributes') }}>
      {% for child in form %}
        {{ form_widget(child, {
          parent_label_class: label_attr.class|default(''),
        }) }}
      {% endfor %}
    </div>
  {% endif %}
{%- endblock choice_widget_expanded %}
{% block checkbox_widget -%}
  {% set parent_label_class = parent_label_class|default('') %}
  {% if 'checkbox-inline' in parent_label_class %}
    {{ form_label(form, null, { widget: parent() }) }}
  {% else %}
    <div class="checkbox">
      {{ form_label(form, null, { widget: parent() }) }}
    </div>
  {% endif %}
{%- endblock checkbox_widget %}
{% block radio_widget -%}
  {% set parent_label_class = parent_label_class|default('') %}
  {% if 'radio-inline' in parent_label_class %}
    {{ form_label(form, null, { widget: parent() }) }}
  {% else %}
    <div class="radio">
      {{ form_label(form, null, { widget: parent() }) }}
    </div>
  {% endif %}
{%- endblock radio_widget %}
{# Labels #}
{% block form_label -%}
  {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' control-label')|trim}) %}
  {{- parent() -}}
{%- endblock form_label %}
{% block choice_label %}
  {# remove the checkbox-inline and radio-inline class, it's only useful for embed labels #}
  {% set label_attr = label_attr|merge({class: label_attr.class|default('')|replace({'checkbox-inline': '', 'radio-inline': ''})|trim}) %}
  {{- block('form_label') -}}
{% endblock %}
{% block checkbox_label -%}
  {{- block('checkbox_radio_label') -}}
{%- endblock checkbox_label %}
{% block radio_label -%}
  {{- block('checkbox_radio_label') -}}
{%- endblock radio_label %}
{% block checkbox_radio_label %}
  {# Do no display the label if widget is not defined in order to prevent double label rendering #}
  {% if widget is defined %}
    {% if required %}
      {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' required')|trim}) %}
    {% endif %}
    {% if parent_label_class is defined %}
      {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' ' ~ parent_label_class)|trim}) %}
    {% endif %}
    {% if label is empty %}
      {% set label = name|humanize %}
    {% endif %}
    <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>
    {{ widget|raw }}
    {{ label|trans({}, translation_domain) }}
    </label>
  {% endif %}
{% endblock checkbox_radio_label %}
{# Rows #}
{% block form_row -%}
  <div class="form-group{% if (not compound or force_error|default(false)) and not valid %} has-error{% endif %}">
    {{ form_label(form) }}
    {{ form_widget(form) }}
    {{ form_errors(form) }}
  </div>
{%- endblock form_row %}
{% block button_row -%}
  <div class="form-group">
    {{- form_widget(form) -}}
  </div>
{%- endblock button_row %}
{% block choice_row -%}
  {% set force_error = true %}
  {{ block('form_row') }}
{%- endblock choice_row %}
{% block date_row -%}
  {% set force_error = true %}
  {{ block('form_row') }}
{%- endblock date_row %}
{% block time_row -%}
  {% set force_error = true %}
  {{ block('form_row') }}
{%- endblock time_row %}
{% block datetime_row -%}
  {% set force_error = true %}
  {{ block('form_row') }}
{%- endblock datetime_row %}
{% block checkbox_row -%}
  <div class="form-group{% if not valid %} has-error{% endif %}">
    {{ form_widget(form) }}
    {{ form_errors(form) }}
  </div>
{%- endblock checkbox_row %}
{% block radio_row -%}
  <div class="form-group{% if not valid %} has-error{% endif %}">
    {{ form_widget(form) }}
    {{ form_errors(form) }}
  </div>
{%- endblock radio_row %}
{# Errors #}
{% block form_errors -%}
  {% if errors|length > 0 -%}
    {% if form.parent %}<span class="help-block errorMessage">{% else %}<div class="alert alert-danger errorMessage">{% endif %}
    <ul class="list-unstyled">
{%- for error in errors -%}
  <li><span class="fa fa-exclamation-circle" aria-hidden="true"></span> {{ error.message }}</li>
{%- endfor -%}
</ul>
    {% if form.parent %}</span>{% else %}</div>{% endif %}
  {%- endif %}
{%- endblock form_errors %}
